package com.app.model;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 发票	
 * </p>
 *
 * @author yoominic
 * @since 2025-04-24
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("tb_invoice")
public class Invoice implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 发票类型1 专票，2普票
     */
    private Integer invoiceType;

    /**
     * 是否含税1:含税，2: 不含税
     */
    private Integer isContainTax;

    /**
     * 购方身份类型(抬头类型)1:企业，2、自然人
     */
    private Integer buyerType;

    /**
     * 购买方名称（抬头）
     */
    private String buyerName;

    /**
     * 购买方税号统一社会信用代码（纳税人识别号）
     */
    private String buyerTaxNo;

    /**
     * 购买方邮箱
     */
    private String buyerEmail;

    /**
     * 金额
     */
    private BigDecimal amount;

    /**
     * 订单号
     */
    private String orderSns;

    /**
     * 税率
     */
    private String taxRate;

    /**
     * 发票备注
     */
    private String remark;

    /**
     * 用户提交id
     */
    private Long userId;

    /**
     * 地址
     */
    private String address;

    /**
     * 身份证号
     */
    private String cardId;

    /**
     * 单位电话
     */
    private String mobile;

    /**
     * 银行
     */
    private String bank;

    /**
     * 银行账号
     */
    private String bankAccount;

    /**
     * 状态1成功2失败
     */
    private Integer status;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    private LocalDateTime updateTime;

    /**
     * 开票详情
     */
    private String invoiceDetails;

    /**
     * 开票结果
     */
    private String result;

    /**
     * 失败原因
     */
    private String failureReason;

    private String successList;

    private String errorList;


    /**
     * 发票访问地址
     */
    private String filePath;


}
